在 JavaScript 中,高階函式(Higher-Order Function)指的是一個可以接受其他函式作為參數,或是將函式作為其返回值的函式。這種函式的靈活性使得我們可以以更抽象的方式處理邏輯,特別適用於處理像陣列這類的資料結構。
常見的高階函式有:map
、filter
、reduce
等。
map 函式
map 是一個高階函式,它接受一個回呼函式作為參數,並對陣列中的每個元素套用該函式,然後返回一個新陣列。
const numbers = [1, 2, 3, 4, 5];
// 高階函式 `map` 接受一個回呼函式作為參數
const doubled = numbers.map(function(number) {
return number * 2;
});
console.log(doubled); // 輸出: [2, 4, 6, 8, 10]
filter 函式filter
是另一個高階函式,它接受一個回呼函式作為參數,根據回呼函式的邏輯來篩選出符合條件的元素,並返回一個新陣列。
const numbers = [1, 2, 3, 4, 5];
// 高階函式 `filter` 接受一個回呼函式作為參數
const evenNumbers = numbers.filter(function(number) {
return number % 2 === 0;
});
console.log(evenNumbers); // 輸出: [2, 4]
延伸議題:
React 中,用於組件處理,稱為高階元件(Higher-Order Component,HOC)。高階元件是一種設計模式,類似於高階函式,它接受一個元件並返回一個新元件。
高階元件(HOC)的概念
高階元件是一個函式,它接收一個組件作為輸入,並返回一個增強或改變後的新組件。HOC 的主要用途是重用元件邏輯,而不影響元件本身的呈現邏輯。這在需要在多個組件中共享相同邏輯的情況下特別有用。
HOC 的基本結構
HOC 一般以一個函式形式出現,這個函式接受一個組件作為參數,並返回一個新的包裝組件。
HOC 的應用場景
重用元件邏輯:當你有多個元件需要共享一些通用的邏輯時(例如驗證、授權、日誌記錄等),可以將這些邏輯抽象到一個 HOC 中。
條件渲染:你可以用 HOC 來決定是否渲染某個組件,或在特定條件下修改其行為。
添加樣式或功能:HOC 可以用來注入特定的樣式或功能到元件中,而不需要改動元件本身。